package com.bookmanger.server.service;

import com.bookmanger.common.result.Result;
import com.bookmanger.pojo.VO.PrebookVO;

import java.util.List;

public interface PreBookService {

    /**
     * 处理预定图书逻辑
     * @param bookId 图书ID
     * @return 处理结果
     */
    Result processPreBook(int bookId);

    /**
     * 处理超时预定
     * @return 处理结果
     */
    Result handleOverduePreBooks();

    /**
     * 完成预定借阅
     * @param preId 预定ID
     * @param managerId 管理员ID
     * @return 处理结果
     */
    Result completePreBookBorrow(int preId, int managerId);

    public boolean processPreBook(Integer bookId);
    
    /**
     * 获取未借阅的预定记录（is_borrowed=0且inform_time不为空）
     * @param page 页码
     * @param pageSize 每页大小
     * @return 预定记录列表
     */
    Result getUnborrowedPreBooks(Integer page, Integer pageSize);
    
    /**
     * 获取已借阅的预定记录（is_borrowed=1且inform_time不为空）
     * @param page 页码
     * @param pageSize 每页大小
     * @return 预定记录列表
     */
    Result getBorrowedPreBooks(Integer page, Integer pageSize);
    
    /**
     * 根据读者编号或姓名模糊查询相关预定记录
     * @param keyword 关键词
     * @param page 页码
     * @param pageSize 每页大小
     * @return 预定记录列表
     */
    Result getPreBooksByReaderKeyword(String keyword, Integer page, Integer pageSize);
}